#include <iostream>
using namespace std;

// 成员变量 和 成员函数 分开存储的

class Person
{
    int age; // 非静态成员变量，属于类的对象上

    static int money; // 静态成员变量，不属于类的对象上

    void func() {} // 非静态成员函数，不属于类的对象上

    static void func2() {} // 静态成员函数，不属于类的对象上
};

class NaN
{
};

void test1()
{
    NaN p;

    //空对象占用内存空间为 1
    //C++编译器会给每一个空对象分配一个字节的空间，是为了区分空对象的位置
    //每个空对象，都应该有独一无二的位置
    cout << "sizeof(p) == " << sizeof(p) << endl;// 1
}

void test2()
{
    //非空对象 -- 忽略空对象的1字节空间，考虑其内部
    Person p;
    cout << "sizeof(p) == " << sizeof(p) << endl;// 4
}

int main()
{
    test1();
    
    return 0;
}